﻿/**********************************************************************
 * @file   GUIWidgetBase.h
 * @brief  界面基类
 * @author BaGuijun (baguijun@163.com)
 * @date   2024-11-12
 *********************************************************************/
#ifndef _GUIWidgetBase_H
#define _GUIWidgetBase_H

#include "GUIWidgetAPI.h"
#include "FITK_Kernel/FITKCore/FITKAbstractGUI.h"

namespace Acoustics {
    class FITKAcousticsSEAModel;
    class FITKAcousticsFEModel;
    class FITKAcousticsPhysics;
}

namespace GUI
{
    /**
     * @brief  界面基类
     * @author BaGuijun (baguijun@163.com)
     * @date   2024-11-12
     */
    class GUIWIDGETAPI GUIWidgetBase : public Core::FITKWidget
    {
        Q_OBJECT;
    public:
        GUIWidgetBase(QWidget* parent = nullptr);
        virtual ~GUIWidgetBase();
    protected:
        /**
         * @brief  声学物理属性管理器
         * @author BaGuijun (baguijun@163.com)
         * @date   2024-11-13
         */
        Acoustics::FITKAcousticsPhysics* _physics = nullptr;
        /**
         * @brief  SEA模型
         * @author BaGuijun (baguijun@163.com)
         * @date   2024-11-12
         */
        Acoustics::FITKAcousticsSEAModel* _SEAModel = nullptr;
        /**
         * @brief  FE模型
         * @author BaGuijun (baguijun@163.com)
         * @date   2024-11-12
         */
        Acoustics::FITKAcousticsFEModel* _FEModel = nullptr;
    };
}

#endif
